home *** CD-ROM | disk | FTP | other *** search
/ Internet.Works 40 / Issue 40.iso / pc / PCSoftware / DHTML Menu Builder 2.6 / dhtmlmen.exe / %AppDir% / Dmb.chm / menu.js < prev    next >
Encoding:
JavaScript  |  2000-10-26  |  19.4 KB  |  586 lines

  1. ////////////////////////////////////////////////
  2. //  DHTML MENU BUILDER 2.6.300                //
  3. //  (c)xFX JumpStart                          //
  4. //                                            //
  5. //  PSN: 7294-239428-XFX-4502                 //
  6. //                                            //
  7. //  GENERATED: 9/23/2000 - 1:09:10 PM         //
  8. ////////////////////////////////////////////////
  9.  
  10.  
  11.     var nStyle = new Array;
  12.     var hStyle = new Array;
  13.     var nLayer = new Array;
  14.     var hLayer = new Array;
  15.     var nTCode = new Array;
  16.  
  17.     var AnimStep = 0;
  18.     var AnimHnd = 0;
  19.     var HTHnd = new Array;
  20.     var DoFormsTweak = false;
  21.  
  22.     var mFrame;
  23.     var cFrame;
  24.  
  25.     var OpenMenus = new Array;
  26.     var SelCommand;
  27.     var nOM = 0;
  28.  
  29.     var mX;
  30.     var mY;
  31.     var xOff = 0;
  32.  
  33.     var HideSpeed = 200;
  34.  
  35. var BV=parseInt(navigator.appVersion);
  36. var BN=window.navigator.appName;
  37. var IsMac=(navigator.userAgent.indexOf('Mac')!=-1)?true:false;
  38. var Opera=(navigator.userAgent.indexOf('Opera')!=-1)?true:false;
  39. var NS=(BN.indexOf('Netscape')!=-1&&(BV==4)&&!Opera)?true:false;
  40. var IE=(BN.indexOf('Explorer')!=-1&&(BV>=4)&&!Opera)?true:false;
  41.  
  42.  
  43.     if ((frames.length==0) && IsMac)
  44.         frames.top = window;
  45.  
  46.     if(IE)
  47.         xOff = 2;
  48.     cFrame = eval(frames['self']);
  49.  
  50.     var fx = 2;
  51.  
  52.  
  53.  
  54.     nStyle[0]="border: 1px;  font-family: Tahoma; font-size: 9pt; font-weight: none; font-style: none; color: #000000; background-color: #C0C0C0; cursor: hand";
  55.     hStyle[0]="border: 1px;  font-family: Tahoma; font-size: 9pt; font-weight: none; font-style: none; color: #FFFFFF; background-color: #0000FF; cursor: hand;";
  56.     nStyle[1]="border: 1px;  font-family: Tahoma; font-size: 9pt; font-weight: none; font-style: none; color: #000000; background-color: #C0C0C0; cursor: hand";
  57.     hStyle[1]="border: 1px;  font-family: Tahoma; font-size: 9pt; font-weight: none; font-style: none; color: #FFFFFF; background-color: #0000FF; cursor: hand;";
  58.     nTCode[1]="frames[\'self\'].execURL(\'http://software.xfx.net\', \'frames[self]\');";
  59.     nLayer[1]="<p align=left><font face=Tahoma point-size=9 color=#000000>Link to xFX JumpStart</font>";
  60.     hLayer[1]="<p align=left><font face=Tahoma point-size=9 color=#FFFFFF>Link to xFX JumpStart</font>";
  61.     nLayer[2]="";
  62.     hLayer[2]="";
  63.     nTCode[3]="frames[\'self\'].execURL(\'http://software.xfx.net/utilities/dmbuilder/register.htm\', \'frames[self]\');";
  64.     nLayer[3]="<p align=left><font face=Tahoma point-size=9 color=#000000>Register DHTML Menu Builder Now!!!</font>";
  65.     hLayer[3]="<p align=left><font face=Tahoma point-size=9 color=#FFFFFF>Register DHTML Menu Builder Now!!!</font>";
  66.  
  67.  
  68.     function GetCurCmd() {
  69. //IE
  70. //This function will return the current command under the mouse pointer.
  71. //It will return null if the mouse is not over any command.
  72. //------------------------------
  73. //Version 1.3
  74. //
  75.         var cc = mFrame.window.event.srcElement;
  76.         while((cc.id=="") && (cc.tagName!="TD")) {
  77.             cc = cc.parentElement;
  78.             if(cc==null)
  79.                 break;
  80.         }
  81.         return cc;
  82.     }
  83.  
  84.     function HoverSel(mode, imgLName, imgRName) {
  85. //IE
  86. //This is the function called every time the mouse pointer is moved over a command.
  87. //------------------------------
  88. //mode: 0 if the mouse is moving over the command and 1 if is moving away.
  89. //imgLName: Name of the left image object, if any.
  90. //imgRName: Name of the right image object, if any.
  91. //------------------------------
  92. //Version 9.3
  93. //
  94.         var imgL = new Image;
  95.         var imgLRsc = new Image;
  96.         var imgR = new Image;
  97.         var imgRRsc = new Image;
  98.         var mc;
  99.  
  100.         if(mode==0 && OpenMenus[nOM].SelCommand!=null)
  101.             HoverSel(1);
  102.  
  103.         if(imgLName!="_")
  104.             var imgL = eval("mFrame.document.images['"+imgLName+"']");
  105.         if(imgRName!="_")
  106.             var imgR = eval("mFrame.document.images['"+imgRName+"']");
  107.  
  108.         if(mode==0) {
  109.             mc = GetCurCmd();
  110.             if(nOM>1)
  111.                 if(mc==OpenMenus[nOM-1].SelCommand)
  112.                     return false;
  113.             if(OpenMenus[nOM].SelCommand || nOM>1)
  114.                 while(!InMenu())
  115.                     Hide();
  116.             mc.style.cssText = hStyle[mc.id];
  117.             if(imgLName!='_') imgLRsc = eval(imgLName+"On");
  118.             if(imgRName!='_') imgRRsc = eval(imgRName+"On");
  119.             OpenMenus[nOM].SelCommand = mc;
  120.             OpenMenus[nOM].SelCommandPar = [imgLName,imgRName];
  121.         } else {
  122.             mc = (mode==1)?OpenMenus[nOM].SelCommand:OpenMenus[nOM].Opener;
  123.             imgLName = (mode==1)?OpenMenus[nOM].SelCommandPar[0]:OpenMenus[nOM].OpenerPar[0];
  124.             imgRName = (mode==1)?OpenMenus[nOM].SelCommandPar[1]:OpenMenus[nOM].OpenerPar[1];
  125.             mc.style.background = "";
  126.             mc.style.cssText = nStyle[mc.id];
  127.             if(imgLName!='_') imgLRsc = eval(imgLName+"Off");
  128.             if(imgRName!='_') imgRRsc = eval(imgRName+"Off");
  129.             window.status = "";
  130.             OpenMenus[nOM].SelCommand = null;            
  131.         }
  132.  
  133.         if(imgLName!='_') {
  134.             imgL = eval("mFrame.document.images."+imgLName);
  135.             imgL.src = imgLRsc.src;
  136.         }
  137.         if(imgRName!='_') {
  138.             imgR = eval("mFrame.document.images."+imgRName);
  139.             imgR.src = imgRRsc.src;
  140.         }
  141.  
  142.         return true;
  143.     }
  144.  
  145.     function NSHoverSel(mode, mc, bcolor, w, h) {
  146. //NS
  147. //This is the function called every time the mouse pointer is moved over or away from a command.
  148. //------------------------------
  149. //mode: 0 if the mouse is moving over the command and 1 if is moving away.
  150. //mc: Name of the layer that corresponds to the selected command.
  151. //n: Unique ID that identifies this command. Used to retrieve the data from the nLayer or hLayer array.
  152. //bcolor: Background color of the command. Ignored if the group uses a background image.
  153. //w: Width of the command's layer.
  154. //h: Height of the command's layer.
  155. //------------------------------
  156. //Version 10.5
  157. //
  158.         var n;
  159.         var LayerHTM;
  160.         if(mode==0 && OpenMenus[nOM].SelCommand!=null)
  161.             NSHoverSel(1);
  162.         
  163.         if(mode==0) {
  164.             n = parseInt(mc.name.substr(2));
  165.             if(nOM>1)
  166.                 if(mc==OpenMenus[nOM-1].SelCommand)
  167.                     return false;
  168.             while(!InMenu())
  169.                 Hide();
  170.             LayerHTM = hLayer[n];
  171.             OpenMenus[nOM].SelCommand = mc;
  172.             OpenMenus[nOM].SelCommandPar = [mc.bgColor,w,h];
  173.             mc.bgColor = bcolor;
  174.         } else {
  175.             mc = (mode==1)?OpenMenus[nOM].SelCommand:OpenMenus[nOM].Opener;
  176.             bcolor = (mode==1)?OpenMenus[nOM].SelCommandPar[0]:OpenMenus[nOM].OpenerPar[0];
  177.             w = (mode==1)?OpenMenus[nOM].SelCommandPar[1]:OpenMenus[nOM].OpenerPar[1];
  178.             h = (mode==1)?OpenMenus[nOM].SelCommandPar[2]:OpenMenus[nOM].OpenerPar[2];
  179.             n = parseInt(mc.name.substr(2));
  180.             LayerHTM = nLayer[n];
  181.             if(mc.parentLayer.background.src!="")
  182.                 mc.bgColor = null;
  183.             else
  184.                 mc.bgColor = bcolor;
  185.             window.status = "";
  186.             OpenMenus[nOM].SelCommand = null;
  187.         }
  188.         mc.resizeTo(w,h);
  189.         mc.document.open();
  190.         mc.document.write(LayerHTM);
  191.         mc.document.close();
  192.  
  193.         return true;
  194.     }
  195.  
  196.     function Hide() {
  197. //IE,NS
  198. //This function hides the last opened group and it keeps hiding all the groups until
  199. //no more groups are opened or the mouse is over one of them.
  200. //Also takes care of reseting any highlighted commands.
  201. //------------------------------
  202. //Version 3.2
  203. //
  204.  
  205.         if(AnimHnd)
  206.             window.clearTimeout(AnimHnd);
  207.  
  208.         if(OpenMenus[nOM].SelCommand!=null) {
  209.             if(IE) HoverSel(1);
  210.             if(NS) NSHoverSel(1);
  211.         }
  212.         if(OpenMenus[nOM].Opener!=null) {
  213.             if(IE) HoverSel(3);
  214.             if(NS) NSHoverSel(3);
  215.         }
  216.  
  217.         OpenMenus[nOM].visibility = "hidden";
  218.         window.clearTimeout(HTHnd[nOM]);
  219.         HTHnd[nOM] = 0;
  220.         nOM--;
  221.  
  222.         if(nOM>0)
  223.             if(!InMenu())
  224.                 HTHnd[nOM] = window.setTimeout("Hide()", HideSpeed);
  225.  
  226.         if(nOM==0)
  227.             FormsTweak("visible");
  228.     }
  229.  
  230.     function ShowMenu(mName, x, y, isCascading) {
  231. //IE,NS
  232. //This is the main function to show the menus when a hotspot is triggered or a cascading command is activated.
  233. //------------------------------
  234. //mName: Name of the <div> or <layer> to be shown.
  235. //x: Left position of the menu.
  236. //y: Top position of the menu.
  237. //isCascading: True if the menu has been triggered from a command, and not from a hotspot.
  238. //------------------------------
  239. //Version 14.0
  240. //
  241.         x = parseInt(x);
  242.         y = parseInt(y);
  243.         if(AnimHnd && nOM>0) {
  244.             AnimStep=100;
  245.             Animate();
  246.         }
  247.         if(IE)
  248.             var Menu = mFrame.document.all[mName];
  249.         if(NS)
  250.             var Menu = mFrame.document.layers[mName];
  251.         if(!Menu)
  252.             return false;
  253.         if(IE)
  254.             Menu = Menu.style;
  255.         if(Menu==OpenMenus[nOM] || HTHnd[nOM])
  256.             return false;
  257.         
  258.         Menu.Opener = nOM>0?OpenMenus[nOM].SelCommand:null;
  259.         Menu.OpenerPar = nOM>0?OpenMenus[nOM].SelCommandPar:null;
  260.         Menu.SelCommand = null;
  261.         
  262.         if(!isCascading)
  263.             HideAll();
  264.  
  265.         var pW = GetWidthHeight()[0] + GetLeftTop()[0];
  266.         var pH = GetWidthHeight()[1] + GetLeftTop()[1];
  267.         
  268.         if(IE) {
  269.             if(isCascading) {
  270.                 x = parseInt(OpenMenus[nOM].left) + parseInt(OpenMenus[nOM].width) - 6;
  271.                 y = y + parseInt(OpenMenus[nOM].top) - 5;
  272.                 Menu.left = (x+parseInt(Menu.width)>pW)?parseInt(OpenMenus[nOM].left) - parseInt(Menu.width) + 6:x;
  273.                 Menu.top =  (y+parseInt(Menu.height)>pH)?pH - parseInt(Menu.height):y;
  274.             } else {
  275.                 Menu.left = (x+parseInt(Menu.width)>pW)?pW - parseInt(Menu.width):x;
  276.                 Menu.top =  (y+parseInt(Menu.height)>pH)?pH - parseInt(Menu.height):y;
  277.             }
  278.             if(!IsMac)
  279.                 Menu.clip = "rect(0 0 0 0)";
  280.         }
  281.         if(NS) {
  282.             if(isCascading) {
  283.                 x = OpenMenus[nOM].left + OpenMenus[nOM].clip.width - 6;
  284.                 y = OpenMenus[nOM].top + OpenMenus[nOM].SelCommand.top;
  285.                 x = (x+Menu.w>pW)?OpenMenus[nOM].left - Menu.w + 6:x;
  286.                 y = (y+Menu.h>pH)?pH - Menu.h:y;
  287.             } else {
  288.                 x = (x+Menu.w>pW)?pW - Menu.w:x;
  289.                 y = (y+Menu.h>pH)?pH - Menu.h:y;
  290.             }
  291.             Menu.clip.width = 0;
  292.             Menu.clip.height = 0;
  293.             Menu.moveToAbsolute(x,y);
  294.         }
  295.         if(isCascading)
  296.             Menu.zIndex = parseInt(OpenMenus[nOM].zIndex) + 1;
  297.         Menu.visibility = "visible";
  298.         OpenMenus[++nOM] = Menu;
  299.         HTHnd[nOM] = 0;
  300.         if((IE && !IsMac) || NS)
  301.             AnimHnd = window.setTimeout("Animate()", 10);
  302.         FormsTweak("hidden");
  303.  
  304.         return true;
  305.     }
  306.  
  307.     function Animate() {
  308. //IE,NS
  309. //This function is called by ShowMenu every time a new group must be displayed and produces the predefined unfolding effect.
  310. //Currently is disabled for Navigator, because of some weird bugs we found with the clip property of the layers.
  311. //------------------------------
  312. //Version 1.9
  313. //
  314.         var r = '';
  315.         var nw = nh = 0;
  316.         switch(fx) {
  317.             case 1:
  318.                 if(IE) r = "0 " + AnimStep + "% " + AnimStep + "% 0";
  319.                 if(NS) nw = AnimStep; nh = AnimStep;
  320.                 break;
  321.             case 2:
  322.                 if(IE) r = "0 100% " + AnimStep + "% 0";
  323.                 if(NS) nw = 100; nh = AnimStep;
  324.                 break;
  325.             case 3:
  326.                 if(IE) r = "0 " + AnimStep + "% 100% 0";
  327.                 if(NS) nw = AnimStep; nh = 100;
  328.                 break;
  329.             case 0:
  330.                 if(IE) r = "0 100% 100% 0";
  331.                 if(NS) nw = 100; nh = 100;
  332.                 break;
  333.         }
  334.         with(OpenMenus[nOM]) {
  335.             if(IE)
  336.                 clip =  "rect(" + r + ")";
  337.             if(NS) {
  338.                 clip.width = w*(nw/100);
  339.                 clip.height = h*(nh/100);
  340.             }
  341.         }
  342.         AnimStep += 20;
  343.         if(AnimStep<=100)
  344.             AnimHnd = window.setTimeout("Animate()",25);
  345.         else {
  346.             window.clearTimeout(AnimHnd);
  347.             AnimStep = 0;
  348.             AnimHnd = 0;
  349.         }
  350.     }
  351.     
  352.     function InMenu() {
  353. //IE,NS
  354. //This function returns true if the mouse pointer is over the last opened menu.
  355. //------------------------------
  356. //Version 1.6
  357. //
  358.         var m = OpenMenus[nOM];
  359.         if(!m)
  360.             return false;
  361.         if(IE&&BV==4)
  362.             SetPointerPos();
  363.         var l = parseInt(m.left) + xOff;
  364.         var r = l+((IE)?parseInt(m.width):m.clip.width) - xOff;
  365.         var t = parseInt(m.top) + xOff;
  366.         var b = t+((IE)?parseInt(m.height):m.clip.height) - xOff;
  367.         return ((mX>=l && mX<=r) && (mY>=t && mY<=b));
  368.     }
  369.  
  370.     function SetPointerPos(e) {
  371. //IE,NS
  372. //This function sets the mX and mY variables with the current position of the mouse pointer.
  373. //------------------------------
  374. //e: Only used under Navigator, corresponds to the Event object.
  375. //------------------------------
  376. //Version 1.0
  377. //
  378.         if(IE) {
  379.             if(event==null)
  380.                 if(mFrame.window.event==null)
  381.                     return;
  382.                 else
  383.                     e = mFrame.window.event;
  384.             else
  385.                 e = event;
  386.             mX = e.clientX + mFrame.document.body.scrollLeft;
  387.             mY = e.clientY + mFrame.document.body.scrollTop;
  388.         }
  389.         if(NS) {
  390.             mX = e.pageX;
  391.             mY = e.pageY;
  392.         }
  393.     }
  394.     
  395.  
  396.     function HideMenus(e) {
  397. //IE,NS
  398. //This function checks if the mouse pointer is on a valid position and if the current menu should be kept visible.
  399. //The function is called every time the mouse pointer is moved over the document area.
  400. //------------------------------
  401. //e: Only used under Navigator, corresponds to the Event object.
  402. //------------------------------
  403. //Version 24.3
  404. //
  405.         SetPointerPos(e);
  406.         if(nOM>0)
  407.             if(OpenMenus[nOM].SelCommand!=null)
  408.                 while(!InMenu() && !HTHnd[nOM]) {
  409.                     HTHnd[nOM] = window.setTimeout("Hide()", HideSpeed);
  410.                     if(nOM==0)
  411.                         break;
  412.                 }
  413.     }
  414.     
  415.     function FormsTweak(state) {
  416. //IE
  417. //This is an undocumented function, which can be used to hide every listbox (or combo) element on a page.
  418. //This can be useful if the menus will be displayed over an area where is a combo box, which is an element that cannot be placed behind the menus and it will always appear over the menus resulting in a very undesirable effect.
  419. //------------------------------
  420. //Version 2.0
  421. //
  422.         if(DoFormsTweak && IE)
  423.             for(var f = 0; f <= (mFrame.document.forms.length - 1); f++)
  424.                 for(var e = 0; e <= (mFrame.document.forms[f].elements.length - 1); e++)
  425.                     if(mFrame.document.forms[f].elements[e].type=="select-one")
  426.                         mFrame.document.forms[f].elements[e].style.visibility = state;
  427.     }
  428.  
  429.     function execURL(url, tframe) {
  430. //IE,NS
  431. //This function is called every time a command is triggered to jump to another page or execute some javascript code.
  432. //------------------------------
  433. //url: Encrypted URL that must be opened or executed.
  434. //tframe: If the url is a document location, tframe is the target frame where this document will be opened.
  435. //------------------------------
  436. //Version 1.1
  437. //
  438.         HideAll();
  439.         window.setTimeout("execURL2('" + url + "', '" + tframe + "')", 100);
  440.     }
  441.  
  442.     function execURL2(url, tframe) {
  443. //IE,NS
  444. //This function is called every time a command is triggered to jump to another page or execute some javascript code.
  445. //------------------------------
  446. //url: Encrypted URL that must be opened or executed.
  447. //tframe: If the url is a document location, tframe is the target frame where this document will be opened.
  448. //------------------------------
  449. //Version 1.0
  450. //
  451.         tframe = rStr(tframe);
  452.         var fObj = eval(tframe);
  453.         url = rStr(url);
  454.         if(url.indexOf("javascript")!=url.indexOf("vbscript"))
  455.             eval(url);
  456.         else
  457.             fObj.location.href = url;
  458.     }
  459.  
  460.     function rStr(s) {
  461. //IE,NS
  462. //This function is used to decrypt the URL parameter from the triggered command.
  463. //------------------------------
  464. //Version 1.1
  465. //
  466.         s = xrep(s,"\x1E","'");
  467.         s = xrep(s,"\x1D","\x22");
  468.         s = xrep(s,"\x1C",",");
  469.         return s;
  470.     }
  471.  
  472.     function xrep(s, f, n) {
  473. //IE,NS
  474. //This function looks for any occurrence of the f string and replaces it with the n string.
  475. //------------------------------
  476. //Version 1.0
  477. //
  478.         var tmp = s.split(f);
  479.         return tmp.join(n);
  480.     }
  481.  
  482.     function hNSCClick(e) {
  483. //NS
  484. //This function executes the selected command's trigger code.
  485. //------------------------------
  486. //Version 1.0
  487. //
  488.         eval(this.TCode);
  489.     }
  490.  
  491.     function HideAll() {
  492. //IE,NS
  493. //This function will hide all the currently opened menus.
  494. //------------------------------
  495. //Version 1.0
  496. //
  497.         while(nOM>0)
  498.             Hide();
  499.     }
  500.  
  501.     function GetLeftTop() {
  502. //IE,NS
  503. //This function returns the scroll bars position on the menus frame.
  504. //------------------------------
  505. //Version 1.0
  506. //
  507.         if(IE)
  508.             return [mFrame.document.body.scrollLeft,mFrame.document.body.scrollTop];
  509.         if(NS)
  510.             return [mFrame.pageXOffset,mFrame.pageYOffset];
  511.     }
  512.  
  513.     function GetWidthHeight() {
  514. //IE,NS
  515. //This function returns the width and height of the menus frame.
  516. //------------------------------
  517. //Version 1.0
  518. //
  519.         if(IE)
  520.             return [mFrame.document.body.clientWidth,mFrame.document.body.clientHeight];
  521.         if(NS)
  522.             return [mFrame.innerWidth,mFrame.innerHeight];
  523.     }
  524.  
  525.     function SetUpEvents() {
  526. //IE,NS
  527. //This function initializes the frame variables and setups the event handling.
  528. //------------------------------
  529. //Version 1.2
  530. //
  531.         if(typeof(mFrame)=="undefined")
  532.         mFrame = eval(frames['self']);
  533.         if(typeof(mFrame)=="undefined")
  534.             window.setTimeout("SetUpEvents()",10);
  535.         else {
  536.             if(NS) {
  537.                 mFrame.captureEvents(Event.MOUSEMOVE);
  538.                 mFrame.onmousemove = HideMenus;
  539.                 PrepareEvents();
  540.             }
  541.             mFrame.document.onmousemove = HideMenus;
  542.             document.onmousemove = HideMenus;
  543.         }
  544.     }
  545.  
  546.     function PrepareEvents() {
  547. //NS
  548. //This function is called right after the menus are rendered.
  549. //It has been designed to attach the OnClick event to the <layer> tag. This is being
  550. //done this way because Navigator does not support a click inline event capturing on
  551. //the layer tag... duh!
  552. //------------------------------
  553. //Version 2.1
  554. //
  555.         for(var l=0; l<mFrame.document.layers.length; l++) {
  556.             var lo = mFrame.document.layers[l];
  557.             lo.w = lo.clip.width;
  558.             lo.h = lo.clip.height;
  559.             for(var sl=0; sl<lo.layers.length; sl++) {
  560.                 var slo = mFrame.document.layers[l].layers[sl];
  561.                 if(slo.name.indexOf("EH")>0) {
  562.                     slo.document.captureEvents(Event.CLICK);
  563.                     slo.document.onclick = hNSCClick;
  564.                     slo.document.TCode = nTCode[slo.name.split("EH")[1]];
  565.                 }                    
  566.             }
  567.         }
  568.     }
  569.  
  570.     if(IE)
  571.         with(document) {
  572.             open();
  573.             write("<div id=\"linksmenu\" style=\"position: absolute; top: 0%; left: 0%; width: 220; height: 59; z-index: 100; visibility: hidden;\"><table id=\"dmbMenu\" background=\"\" border=\"0\" cellpadding=\"1\" style=\"background-color: #C0C0C0; color: #000000; border-left: #E0E0E0 solid 1; border-right: 1 solid #808080; border-top: 1 solid #E0E0E0; border-bottom: 1 solid #808080\" width=\"220\"><tr><td nowrap height=18 align=\"left\" style=\"border: 1px; font-family: Tahoma; font-size: 9pt; font-weight: none; font-style: none; color: #000000; cursor: hand; background-color: #C0C0C0;\" id=0 OnMouseOver=\"frames[\'self\'].HoverSel(0,\'_\',\'_\');window.status=\'\';\" OnClick=\"frames[\'self\'].execURL(\'http://software.xfx.net\', \'frames[self]\');\">Link to xFX JumpStart</td></tr><tr><td nowrap height=\"12\"><div style=\"height: 1px; background-color: #000000;\"><font size=1></font></div></td></tr><tr><td nowrap height=18 align=\"left\" style=\"border: 1px; font-family: Tahoma; font-size: 9pt; font-weight: none; font-style: none; color: #000000; cursor: hand; background-color: #C0C0C0;\" id=1 OnMouseOver=\"frames[\'self\'].HoverSel(0,\'_\',\'_\');window.status=\'reg\';\" OnClick=\"frames[\'self\'].execURL(\'http://software.xfx.net/utilities/dmbuilder/register.htm\', \'frames[self]\');\">Register DHTML Menu Builder Now!!!</td></tr></table></div>");
  574.             close();
  575.         }
  576.     if(NS)
  577.         with(document) {
  578.             open();
  579.             write("<layer name=\"linksmenu\" background=\"\" top=0 left=0 clip=\"0,0,218,51\" z-index=100  bgColor=\"#C0C0C0\" visibility=\"hidden\"><layer name=MC1EH1 top=2 left=0 width=218 height=16 z-index=101 OnMouseOver=\"frames[\'self\'].NSHoverSel(0,mFrame.document.layers[\'linksmenu\'].layers[\'MC1\'],\'#0000FF\',214,16);window.status=\'\';\"></layer><layer name=MC1 top=2 left=2 width=214 height=16 z-index=100  bgcolor=\"#C0C0C0\"><p align=left><font face=Tahoma point-size=9 color=#000000>Link to xFX JumpStart</font></layer><layer width=216 height=1 z-index=100 top=25 left=2 bgcolor=#000000></layer><layer name=MC3EH3 top=32 left=0 width=218 height=16 z-index=101 OnMouseOver=\"frames[\'self\'].NSHoverSel(0,mFrame.document.layers[\'linksmenu\'].layers[\'MC3\'],\'#0000FF\',214,16);window.status=\'reg\';\"></layer><layer name=MC3 top=32 left=2 width=214 height=16 z-index=100  bgcolor=\"#C0C0C0\"><p align=left><font face=Tahoma point-size=9 color=#000000>Register DHTML Menu Builder Now!!!</font></layer></layer>");
  580.             close();
  581.         }
  582. SetUpEvents();
  583.  
  584.  
  585.  
  586.